925B - Resource Distribution - CodeForces Solution


binary search implementation sortings *1700

Please click on ads to support us..

Python Code:

def fin(c, x):
    return (x + c - 1) // c 

def ck(x, b):
    r = (n, n)
    for i in range(b, n):
        r = min(r, (i + fin(c[i][0], x), i))
    return r

def sol(r, l):
    if r[0] <= n and l[0] <= n and r[1] < n and l[1] < n :
        print("Yes")
        print(r[0] - r[1], l[0]- l[1])
        print(' '.join([str(x[1]) for x in c[r[1]:r[0]]]))
        print(' '.join([str(x[1]) for x in c[l[1]:l[0]]]))
        return True
    else:
        return False
    
n, x1, x2 = [int(x) for x in input().split()]
c = sorted([(int(x), i + 1) for i, x in enumerate(input().split())])

r1 = ck(x1, 0)
l1 = ck(x2, r1[0])
r2 = ck(x2, 0)
l2 = ck(x1, r2[0])

if not sol(r1, l1) and not sol(l2, r2):
    print("No")


Comments

Submit
0 Comments
More Questions

43A - Football
50A - Domino piling
479A - Expression
1480A - Yet Another String Game
1216C - White Sheet
1648A - Weird Sum
427A - Police Recruits
535A - Tavas and Nafas
581A - Vasya the Hipster
1537B - Bad Boy
1406B - Maximum Product
507B - Amr and Pins
379A - New Year Candles
1154A - Restoring Three Numbers
750A - New Year and Hurry
705A - Hulk
492B - Vanya and Lanterns
1374C - Move Brackets
1476A - K-divisible Sum
1333A - Little Artem
432D - Prefixes and Suffixes
486A - Calculating Function
1373B - 01 Game
1187A - Stickers and Toys
313B - Ilya and Queries
579A - Raising Bacteria
723A - The New Year Meeting Friends
302A - Eugeny and Array
1638B - Odd Swap Sort
1370C - Number Game